Multi-Cluster弹性模型
Interactive型资源组支持Multi-Cluster弹性模型。Multi-Cluster弹性模型由一个或者多个Cluster组成,可根据资源组的负载自动进行资源扩缩容,满足资源组内部的资源隔离和高并发场景。
前提条件
集群的产品系列为企业版、基础版或湖仓版。
集群的内核版本需为3.1.10.0及以上。
说明查看企业版、基础版或湖仓版集群的内核版本,请执行
SELECT adb_version();
。如需升级内核版本,请联系技术支持。
什么是Multi-Cluster资源组
未开启Multi-Cluster功能时,一个资源组仅有一个Cluster执行查询。当查询任务提交到资源组时,这些查询共享资源组的所有计算资源。如果资源组中运行的查询过多,会发生资源争抢,影响查询速度。如果资源组的查询并发数达到上限,查询将会排队。
Multi-Cluster资源组由一个或者多个Cluster组成。通过静态或者动态申请Cluster资源来应对变化的负载。接入节点收到用户查询后,通过负载均衡调度,将查询分配给资源组的不同Cluster执行。不同Cluster的查询相互独立,互不影响。如下图所示。
Multi-Cluster资源组适合改善中小查询的并发度,减少查询的资源争抢问题,但并不会提高慢查询和ETL任务的速度。
开启Multi-Cluster的优势
对于未开启Multi-Cluster的资源组,当查询负载不断增长,该资源组的计算资源无法满足业务需求时,您需要手动进行以下操作:
手动调整资源组的资源量来满足业务需求。
当大查询和小查询发生了资源争抢,影响了小查询的响应速度时,您需要将大查询投递到其他资源组。
当查询负载下降之后,资源组计算资源有冗余时,手动缩容资源组的资源量以节省成本。
对于开启了Multi-Cluster模式的资源组,同一个资源组由多个相同规格的Cluster组成。将为您带来以下优势:
在Multi-Cluster弹性模式下,您无需因为查询负载抖动而手动调整资源组的大小。AnalyticDB for MySQL会自动根据查询负载调整Cluster个数。
在Multi-Cluster最大值模式情况下,您可以通过调整Cluster个数来控制资源组的计算资源总量。
资源组内部的Cluster是相互隔离的,大查询只会影响所在的Cluster,不会影响其余Cluster中的查询。
注意事项
Multi-Cluster模型仅适用于Interactive类型资源组。
内核版本3.1.10.0之前创建的资源组不支持开启Multi-Cluster模型。如果您需要使用Multi-Cluster弹性模型,请新建Interactive型资源组。
同一个Interactive型资源组,不支持同时开启资源弹性计划和Multi-Cluster功能。
费用说明
开启Multi-Cluster后,Interactive资源组的Cluster个数会弹性变化,并根据实际弹起的资源量(单Cluster规格*Cluster个数)收取弹性资源费用。详情请参见企业版和基础版产品定价和湖仓版产品定价。
开启Multi-Cluster功能
您可以在新建资源组时开启Multi-Cluster,或通过修改已有资源组的配置为已有资源组开启Multi-Cluster。
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。
在左侧导航栏,单击
,切换到资源组管理页签。在资源组管理页面,单击新增资源组或找到目标资源组单击修改。
确认任务类型为Interactive,开启Multi-Cluster,并配置如下相关参数。
参数名称
说明
引擎
选择XIHE或者Spark。
XIHE引擎:该资源组仅支持执行XIHE SQL。
Spark引擎:该资源组仅支持执行Spark作业,且Spark作业会以交互式方式进行处理。
重要该功能目前在邀测中,如需使用,请加入钉钉群 (群号:33600023146)联系技术开启。
Cluster大小
单个Cluster的大小,即ACU数,可任意填写,最小为16 ACU。
最小Cluster个数
资源组内至少需要维持的Cluster个数,需要小于等于最大Cluster个数,最小为1。
设置不同的最小Cluster个数和最大Cluster个数时, AnalyticDB for MySQL会根据资源组的查询负载在设定的最小Cluster个数和最大Cluster个数之间进行动态地扩缩容。
指定相同的最小Cluster个数和最大Cluster个数时,AnalyticDB for MySQL在资源组创建成功后就会启动指定的Cluster个数,有效地静态控制资源组的计算资源总量。
最大Cluster个数
Cluster个数可以扩容到的最大值,最大为10。
设置不同的最小Cluster个数和最大Cluster个数时, AnalyticDB for MySQL会根据资源组的查询负载在设定的最小Cluster个数和最大Cluster个数之间进行动态地扩缩容。
指定相同的最小Cluster个数和最大Cluster个数时,AnalyticDB for MySQL在资源组创建成功后就会启动指定的Cluster个数,有效地静态控制资源组的计算资源总量。
单击确定,开启Multi-Cluster功能。
开启Multi-Cluster功能后,资源组管理页签可以查看Multi-Cluster资源组最小、最大和正在运行的Cluster个数,同时操作列的监控选项中还可以查看详细的资源组相关指标。
修改最大和最小Cluster个数的影响
当您变更最大和最小Cluster个数时,对当前运行的Cluster个数的影响如下。
当最小Cluster个数和最大Cluster个数不同时:
增加最大Cluster个数:增加Cluster个数上限。在负载满足要求之前,Cluster当前运行个数不会发生变化。
减少最大Cluster个数:如果此时正在运行的Cluster个数大于修改后的最大Cluster个数,新的查询将不会发送到多余的Cluster中,等到多余Cluster上的查询执行完毕后,减少运行的Cluster。
增加最小Cluster个数:立即创建新的Cluster,直至满足指定的最小Cluster个数。
减少最小Cluster个数: 如果此时正在运行的Cluster个数大于修改后的最小Cluster个数,AnalyticDB for MySQL会在5分钟时间窗口内持续监控您的查询负载,直至您的负载符合减少条件时,才会减少至您配置的最小Cluster个数。
当最小Cluster个数和最大Cluster个数相同时:
增加最大Cluster个数和最小Cluster个数:直接增加Cluster个数到您设置的最大Cluster个数。
减少最大Cluster个数和最小Cluster个数:新的查询将不会发送到多余的Cluster中,等到多余Cluster上的查询执行完毕后,减少Cluster。
附录:Cluster大小与Spark Driver和Spark Executor规格映射关系
Cluster大小 | Spark Driver规格 | Spark Executor规格 |
24 ACU | 8 Core 64 GB | 1 x 8 Core 64 GB |
36 ACU | 8 Core 64 GB | 2 x 8 Core 64 GB |
72 ACU | 16 Core 128 GB | 4 x 8 Core 64 GB |
144 ACU | 16 Core 128 GB | 10 x 8 Core 64 GB |
240 ACU | 16 Core 128 GB | 9 x 16 Core 128 GB |
360 ACU | 16 Core 128 GB | 14 x 16 Core 128 GB |
480 ACU | 32 Core 256 GB | 18 x 16 Core 128GB |
864 ACU | 32 Core 256 GB | 34 x 16 Core 128GB |
1632 ACU | 64 Core 512 GB | 64 x 16 Core 128 GB |
3168 ACU | 64 Core 512 GB | 128 x 16 Core 128 GB |